home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / AppleScript / Development Tools / Interfaces / AppleScript 1.1 Interfaces / RIncludes / AEObjects.r next >
Encoding:
Text File  |  1995-01-27  |  4.3 KB  |  96 lines  |  [TEXT/MPS ]

  1. ////////////////////////////////////////////////////////////////////////////////
  2. // Copyright © 1992 Apple Computer, Inc. All rights reserved.
  3. // Author: Warren Harris
  4. ////////////////////////////////////////////////////////////////////////////////
  5.  
  6. #ifndef __AEOBJECTS_R__
  7. #define __AEOBJECTS_R__
  8.  
  9. /* Logical operators: look for them in descriptors of type typeLogicalDescriptor
  10.   with keyword keyAELogicalOperator */
  11. #define kAEAND                        'AND '
  12. #define kAEOR                        'OR  '
  13. #define kAENOT                        'NOT '
  14.  
  15. /* Absolute ordinals: look for them in descriptors of type typeAbsoluteOrdinal.
  16.   Possible use is as keyAEKeyData in an object specifier whose keyAEKeyForm
  17.   field is formAbsolutePosition. */
  18. #define kAEFirst                    'firs'
  19. #define kAELast                        'last'
  20. #define kAEMiddle                    'midd'
  21. #define kAEAny                        'any '
  22. #define kAEAll                        'all '
  23.  
  24. /*  Relative ordinals: look for them in descriptors of type formRelativePosition. */
  25. #define kAENext                        'next'
  26. #define kAEPrevious                    'prev'
  27.  
  28. /********** Keywords for getting fields out of object specifier records **********/
  29. #define keyAEDesiredClass            'want'
  30. #define keyAEContainer                'from'
  31. #define keyAEKeyForm                'form'
  32. #define keyAEKeyData                  'seld'
  33.  
  34.  
  35. /********** Keywords for getting fields out of Range specifier records **********/
  36. #define keyAERangeStart                'star'        /* These are the only two fields in the range desc */
  37. #define keyAERangeStop                'stop'
  38.     
  39. /********** Possible values for the keyAEKeyForm field of an object specifier **********/
  40. /* Remember that this set is an open-ended one.  The OSL makes assumptions about some of them,
  41.   but nothing in the grammar says you can't define your own */
  42. #define formAbsolutePosition         'indx'         /* e.g., 1st, -2nd ( 2nd from end) */
  43. #define formRelativePosition        'rele'         /* next, previous */
  44. #define formTest                    'test'         /* A logical or a comparison */
  45. #define formRange                    'rang'         /* Two arbitrary objects and everything in between */
  46. #define formPropertyID                'prop'         /* Key data is a 4-char property name */
  47. #define formName                    'name'         /* Key data may be of type 'TEXT' */
  48.  
  49. /************** Various relevant types ****************/
  50. /* Some of these tend to be paired with certain of the forms above.  Where this
  51.   is the case comments indicating the form(s) follow. */
  52. #define typeObjectSpecifier          'obj '        /* keyAEContainer will often be one of these */
  53. #define typeObjectBeingExamined     'exmn'        /* Another possible value for keyAEContainer */
  54. #define typeCurrentContainer        'ccnt'        /* Another possible value for keyAEContainer */
  55. #define typeToken                    'toke'        /* Substituted for 'ccnt' before accessor called */
  56.  
  57. #define typeRelativeDescriptor         'rel '        /* formRelativePosition */
  58. #define typeAbsoluteOrdinal         'abso'        /* formAbsolutePosition */
  59. #define typeIndexDescriptor            'inde'        /* formAbsolutePosition */
  60. #define typeRangeDescriptor          'rang'        /* formRange */
  61. #define typeLogicalDescriptor         'logi'        /* formTest is this or typeCompDescriptor */
  62. #define typeCompDescriptor            'cmpd'        /* formTest is this or typeLogicalDescriptor */
  63.     
  64. /************** various relevant keywords ****************/
  65. #define keyAECompOperator            'relo'        /* Relates two terms: '', '<', etc. */
  66. #define keyAELogicalTerms            'term'        /* An AEList of terms to be related by 'logc' below */
  67. #define keyAELogicalOperator        'logc'        /* kAEAND,  kAEOR or kAENOT */
  68. #define keyAEObject1                'obj1'        /* One of two objects in a term must be object specifier */
  69. #define keyAEObject2                'obj2'        /* The other object may be a simple descriptor or obj. spec. */
  70.  
  71. /************ Internal whose clause format ***************/
  72. /* Only needed if you do whose clauses yourself. */
  73. #define formWhose 'whos'
  74. #define typeWhoseDescriptor 'whos'
  75. #define keyAEIndex 'kidx'
  76. #define keyAETest 'ktst'
  77. #define typeWhoseRange 'wrng'
  78. #define keyAEWhoseRangeStart 'wstr'
  79. #define keyAEWhoseRangeStop 'wstp'
  80.  
  81. /************ Special Handler selectors for OSL Callbacks ***************/
  82. /* You don't need to use these unless you are not using AESetObjectCallbacks. */
  83. #define keyDisposeTokenProc            'xtok'
  84. #define keyAECompareProc              'cmpr'
  85. #define keyAECountProc                  'cont'
  86. #define keyAEMarkTokenProc              'mkid'
  87. #define keyAEMarkProc                  'mark'
  88. #define keyAEAdjustMarksProc          'adjm'
  89. #define keyAEGetErrDescProc          'indc'
  90.  
  91.  
  92. #endif
  93.  
  94. ////////////////////////////////////////////////////////////////////////////////
  95.  
  96.